{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Inference on Hodgkin-Huxley model: tutorial\n",
    "\n",
    "In this tutorial, we use `sbi` to do inference on a [Hodgkin-Huxley model](https://en.wikipedia.org/wiki/Hodgkin%E2%80%93Huxley_model) from neuroscience (Hodgkin and Huxley, 1952). We will learn two parameters ($\\bar g_{Na}$,$\\bar g_K$) based on a current-clamp recording, that we generate synthetically (in practice, this would be an experimental observation)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note, you find the original version of this notebook at [https://github.com/sbi-dev/sbi/blob/main/examples/00_HH_simulator.ipynb](https://github.com/sbi-dev/sbi/blob/main/examples/00_HH_simulator.ipynb) in the `sbi` repository."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we are going to import basic packages."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# visualization\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# sbi\n",
    "from sbi import utils as utils\n",
    "from sbi import analysis as analysis\n",
    "from sbi.inference.base import infer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "# remove top and right axis from plots\n",
    "mpl.rcParams[\"axes.spines.right\"] = False\n",
    "mpl.rcParams[\"axes.spines.top\"] = False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Different required components\n",
    "\n",
    "Before running inference, let us define the different required components:\n",
    "\n",
    "1. observed data\n",
    "1. prior over model parameters\n",
    "2. simulator"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Observed data\n",
    "\n",
    "Let us assume we current-clamped a neuron and recorded the following voltage trace:\n",
    "\n",
    "\n",
    "<img src=\"https://raw.githubusercontent.com/mackelab/delfi/master/docs/docs/tutorials/observed_voltage_trace.png\" width=\"480\">\n",
    "<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In fact, this voltage trace was not measured experimentally but synthetically generated by simulating a Hodgkin-Huxley model with particular parameters ($\\bar g_{Na}$,$\\bar g_K$). We will come back to this point later in the tutorial."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Simulator\n",
    "\n",
    "We would like to infer the posterior over the two parameters ($\\bar g_{Na}$,$\\bar g_K$) of a Hodgkin-Huxley model, given the observed electrophysiological recording above. The model has channel kinetics as in [Pospischil et al. 2008](https://link.springer.com/article/10.1007/s00422-008-0263-8), and is defined by the following set of differential equations (parameters of interest highlighted in orange):"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\scriptsize\n",
    "\\begin{align}\n",
    "C_m\\frac{dV}{dt}&=g_1\\left(E_1-V\\right)+\n",
    "                    \\color{orange}{\\bar{g}_{Na}}m^3h\\left(E_{Na}-V\\right)+\n",
    "                    \\color{orange}{\\bar{g}_{K}}n^4\\left(E_K-V\\right)+\n",
    "                    \\bar{g}_Mp\\left(E_K-V\\right)+\n",
    "                    I_{inj}+\n",
    "                    \\sigma\\eta\\left(t\\right)\\\\\n",
    "\\frac{dq}{dt}&=\\frac{q_\\infty\\left(V\\right)-q}{\\tau_q\\left(V\\right)},\\;q\\in\\{m,h,n,p\\}\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Above, $V$ represents the membrane potential, $C_m$ is the membrane capacitance, $g_{\\text{l}}$ is the leak conductance, $E_{\\text{l}}$ is the membrane reversal potential, $\\bar{g}_c$ is the density of channels of type $c$ ($\\text{Na}^+$, $\\text{K}^+$, M), $E_c$ is the reversal potential of $c$, ($m$, $h$, $n$, $p$) are the respective channel gating kinetic variables, and $\\sigma \\eta(t)$ is the intrinsic neural noise. The right hand side of the voltage dynamics is composed of a leak current, a voltage-dependent $\\text{Na}^+$ current, a delayed-rectifier $\\text{K}^+$ current, a slow voltage-dependent $\\text{K}^+$ current responsible for spike-frequency adaptation, and an injected current $I_{\\text{inj}}$. Channel gating variables $q$ have dynamics fully characterized by the neuron membrane potential $V$, given the respective steady-state $q_{\\infty}(V)$ and time constant $\\tau_{q}(V)$ (details in Pospischil et al. 2008)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The input current $I_{\\text{inj}}$ is defined as"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "from HH_helper_functions import syn_current\n",
    "\n",
    "I, t_on, t_off, dt, t, A_soma = syn_current()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Hodgkin-Huxley simulator is given by:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "from HH_helper_functions import HHsimulator"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Putting the input current and the simulator together:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "def run_HH_model(params):\n",
    "\n",
    "    params = np.asarray(params)\n",
    "\n",
    "    # input current, time step\n",
    "    I, t_on, t_off, dt, t, A_soma = syn_current()\n",
    "\n",
    "    t = np.arange(0, len(I), 1) * dt\n",
    "\n",
    "    # initial voltage\n",
    "    V0 = -70\n",
    "\n",
    "    states = HHsimulator(V0, params.reshape(1, -1), dt, t, I)\n",
    "\n",
    "    return dict(data=states.reshape(-1), time=t, dt=dt, I=I.reshape(-1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To get an idea of the output of the Hodgkin-Huxley model, let us generate some voltage traces for different parameters ($\\bar g_{Na}$,$\\bar g_K$), given the input current $I_{\\text{inj}}$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "# three sets of (g_Na, g_K)\n",
    "params = np.array([[50.0, 1.0], [4.0, 1.5], [20.0, 15.0]])\n",
    "\n",
    "num_samples = len(params[:, 0])\n",
    "sim_samples = np.zeros((num_samples, len(I)))\n",
    "for i in range(num_samples):\n",
    "    sim_samples[i, :] = run_HH_model(params=params[i, :])[\"data\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# colors for traces\n",
    "col_min = 2\n",
    "num_colors = num_samples + col_min\n",
    "cm1 = mpl.cm.Blues\n",
    "col1 = [cm1(1.0 * i / num_colors) for i in range(col_min, num_colors)]\n",
    "\n",
    "fig = plt.figure(figsize=(7, 5))\n",
    "gs = mpl.gridspec.GridSpec(2, 1, height_ratios=[4, 1])\n",
    "ax = plt.subplot(gs[0])\n",
    "for i in range(num_samples):\n",
    "    plt.plot(t, sim_samples[i, :], color=col1[i], lw=2)\n",
    "plt.ylabel(\"voltage (mV)\")\n",
    "ax.set_xticks([])\n",
    "ax.set_yticks([-80, -20, 40])\n",
    "\n",
    "ax = plt.subplot(gs[1])\n",
    "plt.plot(t, I * A_soma * 1e3, \"k\", lw=2)\n",
    "plt.xlabel(\"time (ms)\")\n",
    "plt.ylabel(\"input (nA)\")\n",
    "\n",
    "ax.set_xticks([0, max(t) / 2, max(t)])\n",
    "ax.set_yticks([0, 1.1 * np.max(I * A_soma * 1e3)])\n",
    "ax.yaxis.set_major_formatter(mpl.ticker.FormatStrFormatter(\"%.2f\"))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As can be seen, the voltage traces can be quite diverse for different parameter values."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Often, we are not interested in matching the exact trace, but only in matching certain features thereof. In this example of the Hodgkin-Huxley model, the summary features are the number of spikes, the mean resting potential, the standard deviation of the resting potential, and the first four voltage moments: mean, standard deviation, skewness and kurtosis. Using the function `calculate_summary_statistics()` imported below, we obtain these statistics from the output of the Hodgkin Huxley simulator. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "from HH_helper_functions import calculate_summary_statistics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Lastly, we define a function that performs all of the above steps at once. The function `simulation_wrapper` takes in conductance values, runs the Hodgkin Huxley model and then returns the summary statistics."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "def simulation_wrapper(params):\n",
    "    \"\"\"\n",
    "    Returns summary statistics from conductance values in `params`.\n",
    "\n",
    "    Summarizes the output of the HH simulator and converts it to `torch.Tensor`.\n",
    "    \"\"\"\n",
    "    obs = run_HH_model(params)\n",
    "    summstats = torch.as_tensor(calculate_summary_statistics(obs))\n",
    "    return summstats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`sbi` takes any function as simulator. Thus, `sbi` also has the flexibility to use simulators that utilize external packages, e.g., Brian (http://briansimulator.org/), nest (https://www.nest-simulator.org/), or NEURON (https://neuron.yale.edu/neuron/). External simulators do not even need to be Python-based as long as they store simulation outputs in a format that can be read from Python. All that is necessary is to wrap your external simulator of choice into a Python callable that takes a parameter set and outputs a set of summary statistics we want to fit the parameters to."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Prior over model parameters\n",
    "\n",
    "Now that we have the simulator, we need to define a function with the prior over the model parameters ($\\bar g_{Na}$,$\\bar g_K$), which in this case is chosen to be a Uniform distribution:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "prior_min = [0.5, 1e-4]\n",
    "prior_max = [80.0, 15.0]\n",
    "prior = utils.torchutils.BoxUniform(\n",
    "    low=torch.as_tensor(prior_min), high=torch.as_tensor(prior_max)\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inference\n",
    "Now that we have all the required components, we can run inference with SNPE to identify parameters whose activity matches this trace."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "236e10175c024404ab437886d467b021",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, description='Running 300 simulations in 300 batches.', max=300.0, styl…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Neural network successfully converged after 233 epochs.\n"
     ]
    }
   ],
   "source": [
    "posterior = infer(\n",
    "    simulation_wrapper, prior, method=\"SNPE\", num_simulations=300, num_workers=4\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Note `sbi` can parallelize your simulator. If you experience problems with parallelization, try setting `num_workers=1` and please give us an error report as a [GitHub issue](https://github.com/mackelab/sbi/issues)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Coming back to the observed data\n",
    "As mentioned at the beginning of the tutorial, the observed data are generated by the Hodgkin-Huxley model with a set of known parameters ($\\bar g_{Na}$,$\\bar g_K$). To illustrate how to compute the summary statistics of the observed data, let us regenerate the observed data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "# true parameters and respective labels\n",
    "true_params = np.array([50.0, 5.0])\n",
    "labels_params = [r\"$g_{Na}$\", r\"$g_{K}$\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_trace = run_HH_model(true_params)\n",
    "observation_summary_statistics = calculate_summary_statistics(observation_trace)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we already shown above, the observed voltage traces look as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(7, 5))\n",
    "gs = mpl.gridspec.GridSpec(2, 1, height_ratios=[4, 1])\n",
    "ax = plt.subplot(gs[0])\n",
    "plt.plot(observation_trace[\"time\"], observation_trace[\"data\"])\n",
    "plt.ylabel(\"voltage (mV)\")\n",
    "plt.title(\"observed data\")\n",
    "plt.setp(ax, xticks=[], yticks=[-80, -20, 40])\n",
    "\n",
    "ax = plt.subplot(gs[1])\n",
    "plt.plot(observation_trace[\"time\"], I * A_soma * 1e3, \"k\", lw=2)\n",
    "plt.xlabel(\"time (ms)\")\n",
    "plt.ylabel(\"input (nA)\")\n",
    "\n",
    "ax.set_xticks([0, max(observation_trace[\"time\"]) / 2, max(observation_trace[\"time\"])])\n",
    "ax.set_yticks([0, 1.1 * np.max(I * A_soma * 1e3)])\n",
    "ax.yaxis.set_major_formatter(mpl.ticker.FormatStrFormatter(\"%.2f\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analysis of the posterior given the observed data\n",
    "\n",
    "After running the inference algorithm, let us inspect the inferred posterior distribution over the parameters ($\\bar g_{Na}$,$\\bar g_K$), given the observed trace. To do so, we first draw samples (i.e. consistent parameter sets) from the posterior:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "17963e661ebf4a3aaa2045b382405beb",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, description='Drawing 10000 posterior samples', max=10000.0, style=Prog…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "samples = posterior.sample((10000,), x=observation_summary_statistics)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = analysis.pairplot(\n",
    "    samples,\n",
    "    limits=[[0.5, 80], [1e-4, 15.0]],\n",
    "    ticks=[[0.5, 80], [1e-4, 15.0]],\n",
    "    figsize=(5, 5),\n",
    "    points=true_params,\n",
    "    points_offdiag={\"markersize\": 6},\n",
    "    points_colors=\"r\",\n",
    ");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As can be seen, the inferred posterior contains the ground-truth parameters (red) in a high-probability region. Now, let us sample parameters from the posterior distribution, simulate the Hodgkin-Huxley model for this parameter set and compare the simulations with the observed data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "211e09dd3cf3424ca0f0adb42c4c86e5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, description='Drawing 1 posterior samples', max=1.0, style=ProgressStyl…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# Draw a sample from the posterior and convert to numpy for plotting.\n",
    "posterior_sample = posterior.sample((1,), x=observation_summary_statistics).numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAE9CAYAAADDIoJJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB/bUlEQVR4nO3ddXhcVfrA8e+5dySeNG3qLqm7QEuLUwpFW6BAsUUKBX4srssCyy6uhcVZtLiX4q4tdXd3ievYPb8/RjKVpGmSyb135nyeh4fmjuQdydx33nPOe4SUEkVRFEVRFLvQzA5AURRFURTlYKjkRVEURVEUW1HJi6IoiqIotqKSF0VRFEVRbEUlL4qiKIqi2IpKXhRFURRFsRWH2QE0hDFjxsivvvrK7DAURVEUaxFmB6DERlxUXnbv3m12CIqiKIqiNJK4SF4URVEURUkcKnlRFEVRFMVWVPKiKIqiKIqtxMWEXUVRFCXx+Hw+Nm/eTGVl5X4v93q96xs3IqWBGMBiv99/6eDBg3fu7woqeVEURVFsafPmzaSnp9OxY0eE2O/CIrWaw4YMwxC7du3qtX379peAU/Z3HTVspCiKothSZWUlTZs2rS5xUWxK0zSZk5NTBPSp9jqNGI+iKIqiNCiVuMQnTdMkNeQoKnlRFEVRFBO98cYbWXPmzEk62NtNnTo18/bbb28Zi5hiISUlZWBD3Zea86IoiqIoJvrkk0+y/H5/0eDBg/c/83g/fD4fEydOLAKKDuY2TqezTjFajaq8JJoln8DMF0BKsyOpWUUB7FhqdhQNw1sOxVvNjqLxBPzB/xKZ1f++lAaxYsUKV6dOnXqfcsopnTp37tx7zJgxnUtKSjSATz/9NL1nz569cnNze5155pkdKyoqBMCVV17ZpkuXLr1zc3N7TZo0qe23336b+t1332X94x//aNujR49eS5YscS9ZssQ9atSobr179+45ePDg7vPmzUsCGD9+fMdzzz23fb9+/XpMnjy57ZQpU5pecMEF7cOxHHroobm5ubm9hg8fnrtq1SrX/m4THf/s2bOT+vbt27NHjx69cnNzey1atMgNcOyxx3bp3bt3z65du/Z+5JFHmoWvn5KSMvDyyy9v27Vr194jRozI/fHHH1OGDRvWvW3btn2nTp2aCTBlypSmxxxzTJdhw4Z179ChQ58bbrih1f6euzvvvLNFnz59eubm5va67rrrWh/sc6+SlwTyy8pd8P6F8OVNkL/W7HBqVPH+5fDscLYu+c3sUOot763L4LGesH2R2aHETF6ph6kzN1BWnA+P9YD3LjA7JNPsfu/v+B/qCmVqoUsiWL9+fdLVV1+9c+3atUvS09ONhx9+OKe8vFxcfvnlnd599901K1euXOr3+3n44Ydztm/frn/xxRdNVq1atWTlypVL77vvvm3HHXdc2bHHHlv473//e/Py5cuX9u7d23PppZd2eOaZZzYuWbJk2cMPP7x58uTJ7cO/b9u2ba65c+cuf+mllzZHxzF58uT2EydOzFu5cuXSCRMm5E2ePLndgW7z1FNP5Vx55ZU7li9fvnThwoXLOnXq5AWYOnXq+iVLliybP3/+0ueff77F9u3bdYCKigrtmGOOKV69evWS1NTUwD/+8Y82v/7668r3339/9b333tsmfL8LFy5M/eyzz1YvWbJkyWeffZb9yy+/pET/3o8++ihj9erVSQsXLly2bNmypfPnz0/58ssv0w7meVfDRgnkqrfmEjl9lu2Gpl3MDKdGyWu/BmDxd2/SuvdIk6Opn6brPwdgy+xptDmpr8nRxMbtHy/i6yU7aLpxK2PKdsGK6WaHZIoKb4BmS18N/rDkYxh2manxJJy7M/c+Mjjyr+Pu3cBh1wQzyt+nNOPbOztUfz9Fc2r7K1u2bOkdPXp0GcD555+fN2XKlOYLFiwobtu2radfv34egIsuuijvv//9b/Pbbrttp9vtNiZMmNDxpJNOKpwwYcI+Qz5FRUXavHnz0s4888zIB7TX643MSh43blyBw7HvqXvevHmpX3755RqAyZMn599zzz1tD3Sb4cOHlz3yyCOtNm/e7Dr77LML+vbt6wF48MEHW0yfPj0LYPv27c4lS5YktWzZsszpdMozzjijGKB3794VbrfbcLvdctiwYRVbtmxxhe935MiRxS1btgwAjB07tuCnn35KO/zww8vDl3/11VcZv/zyS0avXr16AZSXl2vLly9POuGEE0pr+bSr5CWRlFT6ITwlzFde43WtYsuufLNDqLcPA6MYr//KzkA6bQ58dVv6eskOAL5dvpsxJsdippJKH8mhf3u9lbhqvLYSD/Ze7VTT6ien08n8+fOXffbZZxkffPBBk2effbb5jBkzVkZfJxAIkJ6e7l++fPl+x83T0tKMg42x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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(7, 5))\n",
    "\n",
    "# plot observation\n",
    "t = observation_trace[\"time\"]\n",
    "y_obs = observation_trace[\"data\"]\n",
    "plt.plot(t, y_obs, lw=2, label=\"observation\")\n",
    "\n",
    "# simulate and plot samples\n",
    "x = run_HH_model(posterior_sample)\n",
    "plt.plot(t, x[\"data\"], \"--\", lw=2, label=\"posterior sample\")\n",
    "\n",
    "plt.xlabel(\"time (ms)\")\n",
    "plt.ylabel(\"voltage (mV)\")\n",
    "\n",
    "ax = plt.gca()\n",
    "handles, labels = ax.get_legend_handles_labels()\n",
    "ax.legend(handles[::-1], labels[::-1], bbox_to_anchor=(1.3, 1), loc=\"upper right\")\n",
    "\n",
    "ax.set_xticks([0, 60, 120])\n",
    "ax.set_yticks([-80, -20, 40]);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As can be seen, the sample from the inferred posterior leads to simulations that closely resemble the observed data, confirming that `SNPE` did a good job at capturing the observed data in this simple case."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "\n",
    "A. L. Hodgkin and A. F. Huxley. A quantitative description of membrane current and its application to conduction and excitation in nerve. The Journal of Physiology, 117(4):500–544, 1952.\n",
    "\n",
    "M. Pospischil, M. Toledo-Rodriguez, C. Monier, Z. Piwkowska, T. Bal, Y. Frégnac, H. Markram, and A. Destexhe. Minimal Hodgkin-Huxley type models for different classes of cortical and thalamic neurons. Biological Cybernetics, 99(4-5), 2008."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "sbi",
   "language": "python",
   "name": "sbi"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
